/*
 * 介绍:系统接口,公共接口
 */
import { defaHttp, Api } from "../index";

/**登录 */
export async function apiLogin(data: ApiLogin.Req): Promise<Api.Res<ApiLogin.Data>> {
  const res = await defaHttp.post<Api.Res<ApiLogin.Data>>("/connect", data, {
    mode: { failMessage: true, filterReq: true },
  });
  return res;
}

/**登录 */
export namespace ApiLogin {
  export interface Req {
    /**客户端ID */
    clientId: StrNumber;
    /**56：bsc；100：trx */
    chainId: StrNumber;
    nwtworkId: StrNumber;
    /**用户地址 */
    accounts: string;
    /**邀请码 */
    invit?: string;
    /**当前钱包名 */
    that_wallet_name: string;
    code: string;
  }
  export interface Data {
    access_token: string;
    token_type: string;
    expires_in: number;
  }
}
/**获取批准地址 */
export async function apiAutoAddress(
  data: ApiAutoAddress.Req
): Promise<void | ApiAutoAddress.Data> {
  const res = await defaHttp.post<Api.Res<ApiAutoAddress.Data>>(
    "/auth/address",
    data
  );
  if (res.code !== 200) return;
  return res.data;
}
/**获取批准地址 */
export namespace ApiAutoAddress {
  export interface Data {
    address: string;
  }
  export interface Req {
    /**56：bsc；100：TRX； */
    chain: number;
  }
}

/**获取充币地址 */
export async function apiTopUpAddress(): Promise<void | ApiTopUpAddress.Data> {
  const res = await defaHttp.post<Api.Res<ApiTopUpAddress.Data>>(
    "/wallet/bscaddress",
    undefined
  );
  if (res.code !== 200) return;
  return res.data;
}
/**获取充币地址 */
export namespace ApiTopUpAddress {
  export interface Data {
    address: string;
  }
  // export interface Req {
  //   /**56：bsc；100：TRX； */
  //   chain: number;
  // }
}

/**IDO收币地址 */
export async function apiAddress(): Promise<void | ApiAddress.Data> {
  const res = await defaHttp.post<Api.Res<ApiAddress.Data>>("/address", undefined);
  if (res.code !== 200) return;
  return res.data;
}
/**IDO收币地址 */
export namespace ApiAddress {
  export interface Data {
    address: string;
  }
  // export interface Req {
  //   /**56：bsc；100：TRX； */
  //   chain: number;
  // }
}

/**文章(最新公告)详情 */
export async function apiArticleDetails(
  data: ApiArticleDetails.Req
): Promise<void | ApiArticleDetails.Data> {
  const res = await defaHttp.post<Api.Res<ApiArticleDetails.Data>>(
    "/article/info",
    data
  );
  if (res.code !== 200) return;
  return res.data;
}
/**文章(最新公告)详情 */
export namespace ApiArticleDetails {
  export interface Data {
    /**
     * 示例：<p></p><p>Please consult customer service.</p>
     */
    content: string;
    /**
     * 文章ID，示例：1
     */
    id: number;
    /**
     * 示例：Just a quick introduction
     */
    introduction: string;
    /**
     * 示例：How to register the fastest
     */
    title: string;
    /**
     * 示例：2023-05-17 20:53:30
     */
    updated_at: string;
  }
  export interface Req {
    /**1:最新公告；2：常见问题 */
    type: number;
    /**文章ID */
    id: number;
  }
}
